﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Bovespa.Sinacor.Servico.BaseConhecimento.Artigo.Entidades
{
    /// <summary>
    /// Entidade de negocio "Artigo".
    /// </summary>
    [Serializable]
    public class Artigo
    {
        #region Campos

        private long _codigo; //Armazena estado da propriedade "Codigo"
        private Produto _produto; //Armazena estado da propriedade "CodigoProduto"
        private int _codigoUsuario; //Armazena estado da propriedade "CodigoUsuario"
        private Versao _versao; //Armazena estado da propriedade "CodigoVersao"
        private string _sintoma; //Armazena estado da propriedade "Sintoma"
        private string _solucao; //Armazena estado da propriedade "Solucao"
        private string _nomeTitulo; //Armazena estado da propriedade "NomeTitulo"

        #endregion

        #region Construtores

        /// <summary>
        /// Inicializa uma instancia da classe "Artigo".
        /// </summary>
        public Artigo()
        {
            this._produto = new Produto();
            this._versao = new Versao();
        }

        /// <summary>
        /// Inicializa uma instancia da classe "Artigo".
        /// </summary>
        public Artigo(int codigoProduto, int codigoUsuario, int codigoVersao, string sintoma, string solucao, string nomeTitulo)
        {
            this._produto = new Produto();
            this._versao = new Versao();
            this._produto.Codigo = codigoProduto;
            this._codigoUsuario = codigoUsuario;
            this._versao.Codigo = codigoVersao;
            this._sintoma = sintoma;
            this._solucao = solucao;
            this._nomeTitulo = nomeTitulo;
        }

        #endregion

        #region Propriedades

        /// <summary>
        /// Código do Artigo
        /// </summary>
        public long Codigo
        {
            get { return this._codigo; }
            set { this._codigo = value; }
        }

        /// <summary>
        /// Código do Produto
        /// </summary>
        public Produto Produto
        {
            get { return this._produto; }
            set { this._produto = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public int CodigoUsuario
        {
            get { return this._codigoUsuario; }
            set { this._codigoUsuario = value; }
        }

        /// <summary>
        /// Código do Usuário
        /// </summary>
        public Versao Versao
        {
            get { return this._versao; }
            set { this._versao = value; }
        }

        /// <summary>
        /// Descrição do Sintoma
        /// </summary>
        public string Sintoma
        {
            get { return this._sintoma; }
            set { this._sintoma = value; }
        }

        /// <summary>
        /// Descrição da Solução
        /// </summary>
        public string Solucao
        {
            get { return this._solucao; }
            set { this._solucao = value; }
        }

        /// <summary>
        /// Nome do Título do Artigo
        /// </summary>
        public string NomeTitulo
        {
            get { return this._nomeTitulo; }
            set { this._nomeTitulo = value; }
        }

        #endregion
    }
}

